package com.knowledge.plus.other.执行顺序;

/**
 * @author TPF
 * @since 2024/6/21
 */
class OrderDemo {

    public static void main(String[] args) {
        Father ab = new Children();
        ab = new Children();
        /*
        打印结果：
        父类 静态代码块
        子类 静态代码块

        父类 普通代码块
        父类 构造方法
        子类 普通代码块
        子类 构造方法

        父类 普通代码块
        父类 构造方法
        子类 普通代码块
        子类 构造方法
        */
    }

}

class Father {
    static {
        System.out.println("父类 静态代码块");
    }

    {
        System.out.println("父类 普通代码块");
    }

    public Father() {
        System.out.println("父类 构造方法");
    }
}

class Children extends Father {
    static {
        System.out.println("子类 静态代码块 ");
    }

    {
        System.out.println("子类 普通代码块");
    }

    public Children() {
        System.out.println("子类 构造方法");
    }
}
